草庐IT

java - 在 Java 中模拟文件

全部标签

ruby - 如何在 Ruby 中获取 `required` 的文件列表?

这纯粹是一个实验,但我想知道是否有可能通过某种元编程在运行时获取require的gem列表。例如,假设我有:require'rubygems'require'sinatra'require'nokogiri'#don'tknowwhattodohere如何在运行时打印出以下内容?thisappneedsrubygems,sinatra,nokogiri 最佳答案 您不能完全做到这一点,因为需要一个文件可能需要其他文件,而Ruby无法区分您需要的文件和其他人需要的文件。p>您可以查看$LOADED_FEATURES以获取所需的每一项内

ruby - 如何在 ruby​​ 中按上次修改时间排序文件?

如何在ruby​​中获取最后修改时间顺序的文件?我能够粉碎我的键盘来实现这一点:file_info=Hash[*Dir.glob("*").collect{|file|[file,File.ctime(file)]}.flatten]sorted_file_info=file_info.sort_by{|k,v|v}sorted_files=sorted_file_info.collect{|file,created_at|file}但我想知道是否有更复杂的方法来做到这一点? 最佳答案 简单的怎么样:#Ifyouwant'modif

ruby-on-rails - 模拟和 stub

我真的不明白什么是Mocks和Stubs。我想知道我们何时、为何以及如何在我们的测试用例中使用模拟。我知道RubyonRails中的Mocks和Stubs有很好的框架,但不知道用途,我不愿意在我的应用程序中使用它们。你能澄清一下模拟和stub吗?请帮忙。 最佳答案 我非常简单的回答是:mocks是与其他对象具有相似接口(interface)的对象stubs是虚假的方法并返回特定的答案我们都在尝试实现相同的目标:我们想单独测试特定单元(模型/View/Controller/模块)。例如。当我们测试Controller时,我们不想测试我

ruby - 如何在加载文件时禁用重新定义常量的警告

有没有办法在加载特定文件时禁用warning:alreadyinitializedconstant? 最佳答案 问题的解决方案取决于问题的成因。1-您正在更改之前在代码中某处设置的常量的值,或者试图定义一个与现有类或模块同名的常量。解决方案:如果事先知道常量的值会发生变化,就不要使用常量;不要定义与类/模块同名的常量。2-您出于充分的理由想要重新定义常量,但没有收到警告。有两种选择。首先,您可以在重新定义常量之前取消定义常量(这需要一个辅助方法,因为remove_const是一个私有(private)函数):Object.modul

ruby-on-rails - 使用 RSpec 和模拟测试 after_commit

我有一个模型Lead和一个回调:after_commit:create,:send_to_SPL我正在使用Rails-4.1.0、ruby-2.1.1、RSpec。1)此规范未通过:context'callbacks'doit'shallcall\'send_to_SPL\'aftercreate'doexpect(lead).toreceive(:send_to_SPL)lead=Lead.create(init_hash)plead.new_record?#=>falseendend2)这个规范也没有通过:context'callbacks'doit'shallcall\'send

ruby - ruby 和 irb 都不能加载当前目录中的 .rb 文件

我在用Ruby导入文件时遇到了一个非常菜鸟的问题。我正在WindowsXP中制作一个Ruby应用程序。该应用程序的所有类文件都在"C:/Documents/Prgm/Surveyor_Ruby/lib"中。但是当我在另一个文件中require一个文件时,ruby和irb都找不到所需的文件。当前目录的内容:C:\Documents\Prgm\Surveyor_Ruby\lib>dirVolumeindriveChasnolabel.VolumeSerialNumberisAAAA-BBBBDirectoryofC:\Documents\Prgm\Surveyor_Ruby\lib10/0

ruby-on-rails - 使用 Carrierwave 重命名上传的文件

我正在使用Carrierwave上传文件,并且可以正常工作。我的问题是试图更改上传文件的名称。在生成的uploader.rb中有一个我认为我应该使用的方法deffilename"something.jpg"iforiginal_filenamebasename="what"+orginal_filenameiforiginal_filename,worksbasename=(0...8).map{65.+(rand(25)).chr}.joiniforiginal_filename#willcreatearandomnameforeachversion,e.g.theorginal,t

ruby-on-rails - 在 Ruby on Rails 中,send_file 方法后从服务器删除文件

我正在使用以下代码在Rails中发送文件。ifFile.exist?(file_path)send_file(file_path,type:'text/excel')File.delete(file_path)end在这里,我尝试发送文件并在成功发送后从服务器中删除文件。但我面临的问题是,在执行发送时删除操作正在执行,因此我在浏览器中看不到任何内容。那么在Rails中有没有什么办法,一旦send_file操作完成就从服务器上删除文件。如有任何帮助,我们将不胜感激。谢谢,切坦 最佳答案 因为您正在使用send_file,Rails会将

ruby-on-rails - 使用 CarrierWave、Rails 3 上传种子文件

我正在尝试使用CarrierWave为Rails3中的数据库播种图像,但我尝试的任何方法似乎都无法正常工作,除非必须手动上传它们。pi=ProductImage.new(:product=>product)pi.image=File.open(File.join(Rails.root,'test.jpg'))pi.store_image!#triedwithandwithoutthisproduct.product_images有人知道如何使用CarrierWave播种吗? 最佳答案 原来CarrierWave的文档有点错误。有一段

ruby-on-rails - 如何在 Capybara 中模拟浏览器后退按钮?

我们的电子商务网站存在一个问题,即用户偶尔会点击两次“结帐”并从他们的卡中扣款两次。这是一个非常常见的错误并且很容易修复,但我想在我们的capybara设置中测试该解决方案。一旦我调用了click_button('checkout'),我是否可以假装我是一个点击浏览器后退按钮的用户,然后第二次调用click_button('checkout')? 最佳答案 你可能想试试:When(/^Igoback$/)dopage.evaluate_script('window.history.back()')end这将需要在支持javascri